import { Message } from "element-ui";
export default ({ $axios }) => {
  $axios.interceptors.response.use(
    response => {
      const { status, data } = response;
      if (data && data.errmsg) {
        data.errmsg = formatErrmsg(data.errmsg);
      }
      if (process.browser && data.errno) Message.error(data.errmsg);
      return status === 200 ? data : {};
    },
    // eslint-disable-next-line handle-callback-err
    error => Promise.reject(error)
  );
};

/**
 *
 * @param errmsg
 * @returns {string|*}
 */
function formatErrmsg(errmsg) {
  if (typeof errmsg === "string") {
    return errmsg;
  } else if (typeof errmsg === "object") {
    // eslint-disable-next-line no-unused-vars
    for (const key in errmsg) {
      return errmsg[key];
    }
  } else {
    return errmsg;
  }
}
